#!/bin/bash

# 监控服务安装脚本（支持参数）
# 用于将监控脚本安装为系统服务，并传递参数

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

# 检查是否以root权限运行
if [[ $EUID -ne 0 ]]; then
   echo -e "${RED}此脚本需要root权限运行${NC}"
   echo "请使用 sudo $0 重新运行"
   exit 1
fi

# 获取参数
SCRIPT_PARAMS=""
SERVICE_NAME="io-monitor"

while [[ $# -gt 0 ]]; do
    case $1 in
        --params)
            SCRIPT_PARAMS="$2"
            shift 2
            ;;
        --service-name)
            SERVICE_NAME="$2"
            shift 2
            ;;
        *)
            echo -e "${RED}未知选项: $1${NC}"
            exit 1
            ;;
    esac
done

echo -e "${BLUE}===== 监控服务安装 =====${NC}"
echo "此脚本将安装监控服务到系统"

# 获取脚本目录
SCRIPT_DIR="$(dirname "$(readlink -f "$0"))"
MONITOR_SCRIPT="${SCRIPT_DIR}/io-monitor-service.sh"

# 检查监控脚本是否存在
if [ ! -f "$MONITOR_SCRIPT" ]; then
    echo -e "${RED}错误: 监控脚本不存在: $MONITOR_SCRIPT${NC}"
    exit 1
fi

# 设置脚本执行权限
echo -e "${BLUE}[1/4] 设置脚本执行权限...${NC}"
chmod +x "$MONITOR_SCRIPT"
echo -e "${GREEN}✓ 脚本执行权限已设置${NC}"

# 复制脚本到系统分区
echo -e "${BLUE}[2/4] 复制脚本到系统分区...${NC}"
mkdir -p /opt/ohmylinux/"$SERVICE_NAME"
SYSTEM_SCRIPT_PATH="/opt/ohmylinux/$SERVICE_NAME/io-monitor-service.sh"
cp "$MONITOR_SCRIPT" "$SYSTEM_SCRIPT_PATH"
chmod +x "$SYSTEM_SCRIPT_PATH"
echo -e "${GREEN}✓ 脚本已复制到系统分区: $SYSTEM_SCRIPT_PATH${NC}"

# 创建systemd服务文件
echo -e "${BLUE}[3/4] 创建systemd服务...${NC}"
SERVICE_FILE="/etc/systemd/system/$SERVICE_NAME.service"

cat > "$SERVICE_FILE" << EOF
[Unit]
Description=IO Monitor Service
After=network.target

[Service]
Type=simple
ExecStart=/bin/bash $SYSTEM_SCRIPT_PATH $SCRIPT_PARAMS
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

echo -e "${GREEN}✓ systemd服务文件已创建${NC}"

# 重新加载systemd配置
echo -e "${BLUE}[4/4] 重新加载systemd配置...${NC}"
systemctl daemon-reload
echo -e "${GREEN}✓ systemd配置已重新加载${NC}"

echo
echo -e "${GREEN}===== 监控服务安装完成 =====${NC}"
echo "服务已创建，但尚未启动"
echo "您可以使用以下命令管理服务:"
echo "  启动服务: sudo systemctl start $SERVICE_NAME.service"
echo "  停止服务: sudo systemctl stop $SERVICE_NAME.service"
echo "  禁用服务: sudo systemctl disable $SERVICE_NAME.service"
echo "  查看状态: sudo systemctl status $SERVICE_NAME.service"
echo "  开机自启: sudo systemctl enable $SERVICE_NAME.service"